/**
 * 购物车服务测试文件
 * 用于测试购物车服务的基本功能
 */

const CartService = require('./services/cart');

// 模拟测试数据
const testUserId = 123;
const testGoodsId = 456;
const testSpec = '红色@XL@棉质';

// 测试添加到购物车
async function testAddToCart() {
    console.log('🧪 测试添加到购物车功能...');
    
    try {
        const result = await CartService.addToCart({
            goods_id: testGoodsId,
            spec: testSpec,
            quantity: 2,
            user_id: testUserId
        });
        
        console.log('结果:', result);
        
        if (result.success) {
            console.log('✅ 添加购物车测试通过');
            return result.data.cart_id;
        } else {
            console.log('❌ 添加购物车测试失败:', result.message);
            return null;
        }
    } catch (error) {
        console.error('❌ 添加购物车测试异常:', error.message);
        return null;
    }
}

// 测试获取购物车列表
async function testGetCartList() {
    console.log('\n🧪 测试获取购物车列表功能...');
    
    try {
        const result = await CartService.getCartList({
            user_id: testUserId
        });
        
        console.log('结果:', result);
        
        if (result.success) {
            console.log('✅ 获取购物车列表测试通过');
            console.log(`购物车商品数量: ${result.data.count}`);
            console.log(`总价格: ${result.data.total_price}`);
            return true;
        } else {
            console.log('❌ 获取购物车列表测试失败:', result.message);
            return false;
        }
    } catch (error) {
        console.error('❌ 获取购物车列表测试异常:', error.message);
        return false;
    }
}

// 运行所有测试
async function runAllTests() {
    console.log('🚀 开始运行购物车服务测试...\n');
    
    // 测试添加购物车
    const cartId = await testAddToCart();
    
    // 测试获取购物车列表
    await testGetCartList();
    
    console.log('\n✨ 所有测试完成！');
    
    if (cartId) {
        console.log(`购物车记录ID: ${cartId}`);
    }
}

// 如果直接运行此文件，则执行测试
if (require.main === module) {
    runAllTests().catch(console.error);
}

module.exports = {
    testAddToCart,
    testGetCartList,
    runAllTests
};
